package utils

import (
	"os"
	"strconv"
)

// 验证目录是否存在
func PathExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err != nil {
		return false, err
	}
	if os.IsNotExist(err) {
		return false, err
	}
	return true, nil
}

// 分页
func PageTool(pageCount, pageIndex int) (pages []int) {
	/*
		默认页码显示5页 + 上一页 + 下一页
		如果总页数 <= 5
			有多少页显示多少页
		如果总页数 > 5：
			1、如果请求的页码在前3页以内,显示1-5
			2、如果请求的页码属于最后3页以内,显示最后五页
			3、如果请求的页码属于中间,将请求的页码居中，两边页码根据请求的页码前后 ± 2
	*/

	if pageCount <= 5 {
		pages = make([]int, pageCount)
		for i := range pages {
			pages[i] = i + 1
		}
	} else if pageIndex <= 3 {
		pages = []int{1, 2, 3, 4, 5}
	} else if pageIndex > pageCount-3 {
		pages = []int{pageCount - 4, pageCount - 3, pageCount - 2, pageCount - 1, pageCount}
	} else {
		pages = []int{pageIndex - 2, pageIndex - 1, pageIndex, pageIndex + 1, pageIndex + 2}
	}
	return
}

func StrToInt(str string) int { // string 转 int
	retInt, _ := strconv.ParseInt(str, 10, 64)
	return int(retInt)
}

func StrToFloat64(str string) float64 { // string 转 flat64
	retfloat, _ := strconv.ParseFloat(str, 64)
	return retfloat
}
